#ifndef KEY_H
#define KEY_H

#include "SYSTEM/sys/sys.h"
#include "SYSTEM/delay/delay.h"

#define KEY0_GPIO_PORT              GPIOE
#define KEY1_GPIO_PORT              GPIOE
#define KEY2_GPIO_PORT              GPIOE
#define WKUP_GPIO_PORT              GPIOA

#define KEY0_GPIO_PIN               GPIO_PIN_4
#define KEY1_GPIO_PIN               GPIO_PIN_3
#define KEY2_GPIO_PIN               GPIO_PIN_2
#define WKUP_GPIO_PIN               GPIO_PIN_0

#define KEY_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOE_CLK_ENABLE()
#define WKUP_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()

#define RKEY0()   HAL_GPIO_ReadPin(KEY0_GPIO_PORT, KEY0_GPIO_PIN)
#define RKEY1()   HAL_GPIO_ReadPin(KEY1_GPIO_PORT, KEY1_GPIO_PIN)
#define RKEY2()   HAL_GPIO_ReadPin(KEY2_GPIO_PORT, KEY2_GPIO_PIN)
#define RWKUP()   HAL_GPIO_ReadPin(WKUP_GPIO_PORT, WKUP_GPIO_PIN)

#define KEY0_PRES    1
#define KEY1_PRES    2
#define KEY2_PRES    3
#define WKUP_PRES    4

void key_init(void);
int key_scan(int mode);

#endif
